$(document).ready(function(){
	// 選択
	$("dd.Form > .Form").focus (function () {
		$(".Selected").removeClass('Selected');

		$(this).addClass('Selected');
		var hObj = $(this).parent().next("dd.description");
		if (!hObj.text().length) {
			$(".EditorInformation > dl.Information").empty();
			$(".EditorInformation > dl.Information").append ($(".DefInformation > dl.Information").html());
			return;
		}
		$(".EditorInformation > dl.Information").empty();
		$(".EditorInformation > dl.Information").append('<dd>' + hObj.html() + '</dd>');
	});

	$("dd.Form > .Form").change (function () {
		$().switchUpdate();
	});

	// フォームのイベントバインド(デフォルト)
	$(".select_appendable_button").click( function () {
		var Append = window.prompt ("追加する項目を入力してください。");
		if (!Append) return false;
		$(this).prev('select').prepend('<option value="'+ Append +'">'+ Append + '</option>');
		$(this).prev('select').val (Append);
		$().switchUpdate();
	});

	$(".textarea_full").keydown(function (event) {
		if(event.keyCode==9) {
			$(this).insertAtCaret("\t");
			return false;
		}
	});

	// アップロードフォームの表示
	$("dd.Form > .UploadFormSwitch").click (function (e) {
		var backDiv = $(this).next('.UploadFormBack');
		var targetDiv = $(backDiv).next('.UploadForm');
		targetDiv.css("top", $(".EditorMain").scrollTop() + 30);
		backDiv.css("opacity", 0); targetDiv.css("opacity", 0);
		backDiv.show(); targetDiv.show();
		backDiv.fadeTo("fast", 0.8); targetDiv.fadeTo("fast", 1);
		e.preventDefault();
	});

	// アップロードフォームを閉じる
	// アップロードフォームの表示
	$(".UploadForm > .UploadFormClose").click (function (e) {
		var targetDiv = $(this).parents('.UploadForm');
		var backDiv = $(targetDiv).prev('.UploadFormBack');
		targetDiv.fadeOut("fast"); backDiv.fadeOut("fast");
		e.preventDefault();
	});

	// unload時のイベントバインド
	// 結局jQueryでの実装ができなかった……。	
	window.onbeforeunload = function(event){
		if (isUpdate) {
			event = event || window.event;
			event.returnValue = "移動するとフォームの内容が失われます。";
		}
	}

	$("dd.Form > .Form:enabled:first").focus ();
});

$.fn.extend({
	/* 更新ありに変更 */
	switchUpdate: function () {
		if (!isUpdate) {
			$(".Editor > h2").append('<span>(更新)</span>');
			isUpdate = true;
		}
	},
	/* キャレット位置に文字列挿入 */
	insertAtCaret: function(v) {
		var o = this.get(0);
		o.focus();
		if (jQuery.browser.msie) {
			var r = document.selection.createRange();
			r.text = v;
			r.select();
		} else {
			var s = o.value;
			var p = o.selectionStart;
			var np = p + v.length;
			o.value = s.substr(0, p) + v + s.substr(p);
			o.setSelectionRange(np, np);
		}
	}
});
